// 验证ModelList修复是否有效
import axios from 'axios';

console.log('🔍 验证ModelList修复效果...');

// 测试配置
const API_BASE_URL = 'http://localhost:4112';

// 创建axios实例
const apiClient = axios.create({
  baseURL: API_BASE_URL,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json',
  }
});

// 模拟前端数据处理逻辑
function processModelData(responseData) {
  console.log('📋 模拟前端数据处理...');
  
  if (responseData && Array.isArray(responseData)) {
    console.log(`✅ 数据格式正确，共 ${responseData.length} 个模型`);
    
    if (responseData.length > 0) {
      const firstModel = responseData[0];
      console.log('📦 第一个模型数据:');
      console.log(`  ID: ${firstModel.MId || firstModel.mId}`);
      console.log(`  名称: ${firstModel.MName || firstModel.mName}`);
      console.log(`  图片: ${firstModel.MImg || firstModel.mImg}`);
      console.log(`  职业: ${firstModel.MOccupation || firstModel.mOccupation}`);
      console.log(`  职业名称: ${firstModel.MOccupationName || firstModel.mOccupationName}`);
      console.log(`  下载链接: ${firstModel.MUrl || firstModel.mUrl}`);
      
      // 验证字段名兼容性
      const hasUpperCaseFields = ['MId', 'MName', 'MImg', 'MUrl'].every(field => field in firstModel);
      const hasLowerCaseFields = ['mId', 'mName', 'mImg', 'mUrl'].every(field => field in firstModel);
      
      if (hasUpperCaseFields) {
        console.log('✅ 支持大写字段名（后端格式）');
      }
      if (hasLowerCaseFields) {
        console.log('✅ 支持小写字段名（前端格式）');
      }
      
      if (!hasUpperCaseFields && !hasLowerCaseFields) {
        console.log('❌ 字段名格式不支持');
        return false;
      }
      
      console.log('✅ 字段名兼容性验证通过');
      return true;
    } else {
      console.log('⚠️ 数据为空');
      return false;
    }
  } else {
    console.log('❌ 数据格式不正确');
    return false;
  }
}

// 测试API并验证数据处理
async function testAndVerify() {
  try {
    console.log('📡 请求API数据...');
    
    const response = await apiClient.get('/model/list', {
      params: {
        search: '',
        occ: 'bladePoint'
      }
    });
    
    console.log('✅ API请求成功');
    console.log(`状态码: ${response.data.code}`);
    console.log(`消息: ${response.data.msg}`);
    
    if (response.data.code === 200) {
      const success = processModelData(response.data.data);
      
      if (success) {
        console.log('\n🎉 验证结果: 修复成功！');
        console.log('✅ 前端现在可以正确显示模型数据');
        console.log('✅ 字段名兼容性处理正常');
        console.log('✅ 数据解析逻辑正确');
      } else {
        console.log('\n❌ 验证结果: 仍有问题需要修复');
      }
    } else {
      console.log('❌ API返回错误状态码');
    }
    
  } catch (error) {
    console.error('❌ 验证失败:', error.message);
    
    if (error.code === 'ECONNREFUSED') {
      console.log('💡 提示: 请确保后端服务正在运行（端口4112）');
    }
  }
}

// 运行验证
console.log('='.repeat(50));
console.log('   ModelList修复验证');
console.log('='.repeat(50));

testAndVerify().then(() => {
  console.log('\n' + '='.repeat(50));
  console.log('   验证完成');
  console.log('='.repeat(50));
}).catch(console.error);
